import $H from './request.js';

export default {
	// 监听网络
	onNetWork() {
		let func = (res) => {
			if (res.networkType === 'none') {
				uni.showToast({
					title: '当前处于断网状态,请先连接',
					icon: 'none'
				});
			}
		}
		uni.getNetworkType({
			success: func
		});
		uni.onNetworkStatusChange(func);
	},
	// 热更新
	update(showToast = false) {
		// #ifdef APP-PLUS
		plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
			$H.post('/update', {
				ver: widgetInfo.version,
			}).then((data) => {
				// 成功
				if (!data.url) {
					// 无需更新
					if (showToast) {
						uni.showToast({
							title: '无需更新',
							icon: "none"
						})
					}
					return
				}

				uni.showModal({
					title: '发现新的版本',
					content: '最新版本：' + data.version,
					cancelText: '放弃更新',
					confirmText: '立即更新',
					success: res => {
						if (!res.confirm) return;
						uni.downloadFile({
							url: data.url,
							success: (downloadResult) => {
								if (downloadResult.statusCode === 200) {
									plus.runtime.install(downloadResult
										.tempFilePath, {
											force: false
										},
										function() {
											console.log(
												'install success...');
											plus.runtime.restart();
										},
										function(e) {
											console.error(
												'install fail...');
										});
								}
							}
						});
					}
				});

			});

		});
		// #endif  
	},
	// 数组置顶
	__toFirst(arr, index) {
		if (index != 0) {
			arr.unshift(arr.splice(index, 1)[0]);
		}
		return arr;
	},
	checkPhone(phone) {
		if (!phone) {
			uni.showToast({
				title: '手机号不能为空',
				icon: 'error'
			});
			return false;
		}
		const rule = /^1[345678]\d{9}$/;
		if (!rule.test(phone)) {
			uni.showToast({
				title: '手机号格式错误',
				icon: 'error'
			});
			return false;
		}

		return true;
	},
	checkPassword(password) {
		if (!password) {
			uni.showToast({
				title: '密码不能为空',
				icon: 'error'
			});
			return false;
		} else if (password.length < 6) {
			uni.showToast({
				title: '密码至少6位',
				icon: 'error'
			});
			return false
		} else if (password.length > 16) {
			uni.showToast({
				title: '密码最长16位',
				icon: 'error'
			});
			return false;
		}

		return true;
	},
	checkEmail(email, {
		required = true
	}) {
		if (required && !email) {
			uni.showToast({
				title: '邮箱不能为空',
				icon: 'error'
			});
			return false;
		}
		const rule = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if (!rule.test(email)) {
			uni.showToast({
				title: '邮箱格式不正确',
				icon: 'error'
			})
			return false;
		}
		return true;
	},
	// 跳转页面 - 可返回
	navigateTo(path) {
		uni.navigateTo({
			url: `/pages/${path}/${path}`
		});
	},
	// 重定向页面 - 不可返回
	redirectTo(path) {
		uni.redirectTo({
			url: `/pages/${path}/${path}`
		});
	},
	// 切换页面 - 跳转到tabBar
	switchTab(path) {
		uni.switchTab({
			url: `/pages/${path}/${path}`
		});
	}
}
